#ifndef COLLADA_MESH_H_
#define COLLADA_MESH_H_

namespace Collada
{
	class Source;

	class Mesh : public Element
	{
	DECLARE_RTTI( Collada::Mesh, Collada::Element )
	DECLARE_ELEMENT( Collada::Mesh )

	public :
		~Mesh();

		bool							AddSource( Source* pSource );
		const std::vector< Primitive* >&	GetMeshInfo(){ return _primitives; }
		Source*							GetSource( ID sourceId );
		
	private :
		Mesh( const std::string& id, const std::string& name );

		void							SetBuffer( Primitive& prim, const std::string& stream, int bufferSize );

		std::vector< PrimitiveInfo >	_primitiveInfos;
		std::vector< Primitive* >		_primitives;
		std::vector< Source* >			_sourceList;
		std::vector< Accessor >			_vertices;

	};

};

#endif